// index.js
//1. 从api模块中导入getBannersList方法,用于获取banner列表数据。
import {reqBannersList,reqCategory1List,reqLikeList,reqRecommendList} from '../../api/index'
// - API函数封装
// - 异步请求处理
// - 数据存储
// - 错误处理
// - 模板绑定渲染
Page({ // 定义banners为空数组,用于存储获取到的轮播图数据
  data:{
    banners:[],
    category1List:[],
    likeList:[], //猜你喜欢的
    recommendList:[] , //人气推荐 
  },
  onLoad(){ //在onLoad生命周期函数中,调用this.getBanners()获取数据
    this.getBanners()
    this.getCategory1List()
    this.getLikeList()
    this.getRecommendList()
  },
  // getBanners是一个异步方法,使用try/catch处理可能的错误。
  async getBanners(){
    try {
      const res = await reqBannersList()
      this.setData({
        banners:res.data
      })
    } catch (error) {
      wx.showToast({
        title: '获取轮播图失败',
        icon:"error"
      })   
    }
  },
  //sync/await 与 try/catch 来实现获取分类数据的异步流程
  async getCategory1List(){
    try {
      const res = await reqCategory1List()//定义异步函数
      this.setData({
        category1List:res.data
      })
      console.log(res)
    } catch (error) {
      console.log(error)
      wx.showToast({
        title: '获取分类失败',
        icon:"error"
      })
    }
  },
   // 发送请求获取猜你喜欢列表的数据
   async getLikeList(){
    try {
      const res = await reqLikeList()
      this.setData({
        likeList:res.data
      })
    } catch (error) {
      console.log(error)
      wx.showToast({
        title: '获取喜欢失败',
      })
    }
  },
  // 发送请求获取人气推荐列表的数据
  async getRecommendList(){
    try {
      const res = await reqRecommendList()
      this.setData({
        recommendList:res.data
      })
    } catch (error) {
      console.log(error)
      wx.showToast({
        title: '获取推荐失败',
      })
    }
  },
})
